perm filename LL[MSS,LCS]1 blob
sn#240990 filedate 1976-10-10 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 C THIS AIDS IN EXTRACTING PARTS FROM SCORES. SEE PT1.CMD
C00024 ENDMK
C⊗;
C THIS AIDS IN EXTRACTING PARTS FROM SCORES. SEE PT1.CMD
COMMON/STF/RSTFAC(-3/4),RSTJ2 /POSI/STFF(-3/4),JJ2,JPQ
1 /IPG/IPG,JPG,BRACK,RSTNUM(8),RPSZ(8),RHGT(8),
1 RCLEF(-3/4) /IVV/IWDS(250)
COMMON RS,JA,REST,J2,RQ(18),JX,PR,LX,RDIS
C ORDER OF COMMON BLOCKS **MUST** STAY AS IS!
COMMON/XRN/RN(4000) /SF/KL,RT,KP,STFSZ,NAMX
1 /PTR/KWDS(700)/LLL/L,LL,I,IX/XXX/LK,LP,JY /JN/J,N
C INCREASE DIMENSION OF KWDS FOR VERY FULL PAGES.
DIMENSION KNM(10),NRD(100),MM(4000),NN(4000),BARS(510),
1 KPN(1),RSIG(-3/4),RMETER(-3/4),RCL(-3/4)
COMMON /PX/PN(2000) /Q/Q(8400)
1 /RCLF/KK,CLEF,KW,ITEM,RSTAFF,SN,YN,RNAM,RNAM2,RNAM3
1 /KBAR/KBAR(512)
DATA FIB/.7/,RSPC/25./,PGNUM/1.6/,RNMHT/16.0/,RNMSZ/1.2/
1 ,RLTRSZ/1.0/,SPCPG/2.7/
EQUIVALENCE (RQ(2),R4),(R5,RQ(3)),(R6,RQ(4)),(R7,RQ(5))
1,(MM,RN),(NN,RN(4001)),(KPN,PN),(KS,RS),(BARS,KBAR(3))
1,(R8,RQ(6)),(R9,RQ(7)),(RQ(10),XLFT),(K,KBAR),(T,KBAR(2))
C RQ(2) IS R4, RQ(3) IS R5 ETC.
JNM=1
MRD=0
JRD=0
TYPE 3
ACCEPT 2,KS,NTYPE
C TYPE -1 AFTER NAME(I.E.5 SPACES) TO PRINT INST. NAMES AS READ.
IPG=NTYPE-1
C TYPE 1 AFTER NAME FOR 'PAGE' LAYOUT
IF(KS.EQ.' ')KS='OLD'
IF(KS.EQ.'OLD')CALL PT2
IF(IPG)GO TO 144
KNM(1)=KS
JNM=2
DO 644 K=1,100
C NO EDIT FILE NEEDED FOR PAGE LAYOUT INPUT!!! TYPE 'NAME' 1
644 NRD(K)=1
GO TO 344
144 CALL IFILE(1,KS)
244 FORMAT(I,A5,30I)
544 READ(1,244,END=344),K,KNM(JNM),(IWDS(K),K=1,30)
JNM=JNM+1
DO 444 K=1,30
J=IWDS(K)
JRD=JRD+1
NRD(JRD)=J
444 IF(J.EQ.0)GO TO 544
344 KNM(JNM)='ZZZZZ'
JNM=1
JRD=0
IF(IPG)GO TO 744
DO 911 K=1,8
RCLEF(K-4)=99
RCL(K-4)=99
RMETER(K)=99
C INITS STUFF FOR PAGE LAYOUT
911 RSIG(K)=99
BRACK=0
744 XSIG=FIB
CLEF=-1
XMTR=FIB
XLFT=0
ENDLN=0
JPG=0
KQ=0
YCLEF=2.
YSIG=2.
YMTR=2.
KW=1
KX=1
RSTAFF=0
RM=0
L=1
LK=1
86 FORMAT(1XA5)
3 FORMAT(' TYPE FILE NAME ',$)
83 NAME=KNM(JNM)
JNM=JNM+1
IF(NAME.EQ.'ZZZZZ')GO TO 20
JREAD=-1
JRD=JRD+1
NXX=NRD(JRD)
NAMZ=NAME
GO TO 284
10 IF(LOOKF(NAME))GO TO 284
NAME=NAMZ+256
IF(LOOKF(NAME).GE.0)GO TO 83
NAMZ=NAME
C FOUND NO MORE TO READ
284 JZ=0
SN=0
IF(IPG)SN=200
SNMTR=SN
IF(RM.NE.0)GO TO 277
RM=-1
4 FORMAT(' TYPE INST NAME '$)
IF(IPG.EQ.0)GO TO 277
TYPE 4
ACCEPT 2,RNAM,K
RNAM2=0
RNAM3=0
RNAM4=0
IF(K.EQ.0)GO TO 277
TYPE 177
ACCEPT 2,RNAM2,K
IF(K.EQ.0)GO TO 277
C TYPE NUM AFTER NAME TO ENTER UP TO 4 NAMES.
TYPE 177
ACCEPT 2,RNAM3
TYPE 177
ACCEPT 2,RNAM4
177 FORMAT(' OTHER INST NAME ',$)
277 TYPE 86,NAME
CALL GETFIL(NAME)
C LP IS START OF RN ARRAY THIS TIME
CALL FASTIN(RSTFAC,20)
CALL FASTIN(KWDS(KW),JJ2)
CALL FASTIN(RN(KX),JPQ)
IPG=NTYPE-1
C IPG MUST BE RESET EACH TIME BECAUSE READIN WIPES IT OUT.
LA=KX-1
P=0
IF(IPG)GO TO 811
C MUST BE PRE-SORTED FOR PAGE LAYOUT
DO 1711 N=1,JPQ
1711 PN(N)=RN(N)
NK=JJ2-1
1211 R=RN(KWDS(1)+3)
K=2
J=0
1111 IF(RN(KWDS(K)+1).GT.2)GO TO 2611
C SORTS NOTES AND RHYTH ONLY
RA=RN(KWDS(K)+3)
IF(RA.GE.R)GO TO 1011
CALL EXCH(KWDS(K),KWDS(K-1))
J=-1
1011 R=RA
2611 K=K+1
IF(K.LT.NK)GO TO 1111
IF(J)GO TO 1211
C NOW ALL SORTED
J=1
NK=1
DO 1311 K=1,JJ2-1
LS=KWDS(K)
IF(RN(LS+1).GT.2)GO TO 2711
RN(LS+3)=RN(LS+3)-.01
C MOVE ALL NOTES AND RESTS SLIGHTLY TO LEFT. (FOR SORTER)
2711 M=RN(LS)+2
DO 1411 N=LS,M+LS
PN(J)=RN(N)
1411 J=J+1
IWDS(K)=NK
1311 NK=NK+M+1
DO 1511 K=1,JJ2-1
1511 KWDS(K)=IWDS(K)
DO 1611 K=1,JPQ
1611 RN(K)=PN(K)
811 DO 577 K=KW,KW+JJ2-3
J=KWDS(K)+LA
R=RN(J+1)
IF(IPG)GO TO 111
C IPG=-1 = EXTRACTING PARTS, =0 = PAGE LAYOUT.
IF(R.NE.8)GO TO 211
IF(ENDLN.NE.0)GO TO 211
JPG=JPG+1
R5=RN(J+2)
RSTNUM(JPG)=R5
RHGT(JPG)=0
IF(RN(J).GE.2)RHGT(JPG)=RN(J+4)
RPSZ(JPG)=RSTFAC(IFIX(R5))
C***211 RN(J+2)=RN(J+2)*.1
C*** STAFF NUMS WILL NOW BE -.3 UP TO +.4. NO STAFF NAME NEEDED.
IF(R5.EQ.0)SPCNT=SPCPG*RPSZ(JPG)
211 IF(R.NE.4)GO TO 577
IF(RN(J+3).GT.0)GO TO 577
IF(RN(J).GE.5)BRACK=RN(J+7)
C SAVE 'BRACKET' INFO (P7=3,4 OR 5) - CAN FIND WRONG THING!!
GO TO 577
111 IF(R.NE.8)GO TO 677
IF(RN(J).LT.6)GO TO 577
C NO NAME ON THIS STAFF - SO JUMP
IF(RN(J+7).NE.0)GO TO 577
C SKIPS INVISIBLE STAVES.
XLFT=RN(J+3)
C LEFT LIMIT OF STAFF
R9=RN(J+9)
IF(NTYPE)TYPE 86,R9
IF(R9.EQ.RNAM)GO TO 977
IF(RNAM2.EQ.R9)GO TO 977
IF(RNAM3.EQ.R9)GO TO 977
IF(RNAM4.NE.R9)GO TO 577
977 I=RN(J+2)+RSTAFF
SN=I
SNMTR=SN
GO TO 477
677 IF(R.NE.10)GO TO 79
IF(RN(J).LT.4)GO TO 79
IF(RN(J+6).GT.RNUM)GO TO 79
C SKIPS PAGE NUMS. (I.E. BIG SIZE)
IF(RN(J).GE.6)P=-1
C FOUND A NUM. IN BOX ↑↑, REMEMBER IT DID.
GO TO 577
IF(IPG.EQ.0)GO TO 477
79 IF(R.NE.16)GO TO 577
IF(RN(J+5).GE.100)P=-1
C PICKS UP WORD WITH SZ >100
577 CONTINUE
C DIDN'T FIND USEFUL INFO SO SKIP THIS FILE
477 I=JPQ-2
C READS AND WRITES 1 EXTRA WORD
ITEM=JJ2+KW-3
877 NXX=NXX-1
NAME=NAME+2
IF(NXX.NE.0)GO TO 277
JRD=JRD+1
NXX=NRD(JRD)
IF(NXX.NE.0)GO TO 44
NAME=0
NAMZ=0
44 KX=1
JREAD=-1
RSTAFF=0
KW=1
13 IWDS(1)=1
YN=0
IF(SN.NE.200)GO TO 8
YN=-1
IF(YCLEF.GT.1)YCLEF=-1
IF(YSIG.GT.1)YSIG=-1
IF(YMTR.GT.1)YMTR=-1
8 ZLFT=XLFT+.5
RNUM=PGNUM
C SIZE FACTOR FOR PAGE NUMBER FINDER (MAYBE).
DO 6 K=1,ITEM
R5=-1
J=KWDS(K)
R=RN(J+1)
IF(R.EQ.0)GO TO 6
C DUPLICATE BARS WERE CHANGED TO CODE 0
IF(R.NE.10)GO TO 800
IF(RN(J).LT.4)GO TO 80
IF(RN(J+6).GT.RNUM)GO TO 6
C SKIPS PAGE NUMS. (I.E. BIG SIZE)
IF(RN(J).LT.6)GO TO 80
RN(J+4)=RNMHT
C THE ABOVE SET HEIGHT AND SIZE OF REHEARSAL NUMS.
GO TO 810
800 IF(R.NE.4)GO TO 80
IF(RN(J).NE.2)GO TO 182
C FOUND A BAR LINE
IF(RN(J+3).LT.ZLFT)GO TO 6
C DROPS BAR LINE AT LEFT OF STAFF.
CALL DBAR(K,ITEM,J)
IF(YN.EQ.0)GO TO 810
CALL ADRST(IWDS)
GO TO 6
182 RN(J+1)=44
C CHANGES CODE NUM
IF(RN(J).LT.5)GO TO 80
IF(RN(J+7).GE.3)GO TO 6
C SKIP HEAVY BRACKETS.
80 IF(R.NE.16)GO TO 180
IF(IPG.EQ.0)GO TO 180
IF(RN(J+5).GE.100)RN(J+2)=SN
C CATCHES WANTED TEXT ON OTHER LINES. (P5>100)
IF(RN(J+5).GT.RLTRSZ)RN(J+5)=RLTRSZ
C LIMITS SIZE OF LETTERS. ADJUST RLTRSZ TO SUIT. (SET AT 1.0 NOW)
180 RSN=RN(J+2)
IF(IPG)GO TO 2011
ISN=RSN
RSN=SN
C THE STAFF NUM.
2011 IF(R.NE.3)GO TO 3801
IF(IPG)GO TO 2111
CLEF=RCL(ISN)
GO TO 4801
2111 IF(YCLEF)GO TO 4801
IF(RSN.NE.SN)GO TO 6
CC4801 RR=AMOD(RN(J+5),100.0)
C ↑↑↑↑↑ BECAUSE SOME CLEFS ARE MINI-CLEFS
CC IF(RN(J).LT.3)RR=0
4801 RR=CLEFN(RN,J)
C FUNCTION CLEFN FINDS CLEFS NUM.
IF(RR.EQ.CLEF)GO TO 6
C SKIP DUPLICATE CLEFS.
IF(RR.GT.3.AND.RR.LT.100)GO TO 4800
IF(IPG)GO TO 16
RCL(ISN)=RR
IF(RCLEF(ISN).EQ.99)RCLEF(ISN)=RR
C SAVE FIRST CLEF ON EACH STAFF
GO TO 1800
16 FORMAT(' CLEF=',F2.0,' --CHANGE TO--',$)
TYPE 16,RR
ACCEPT 5,RR
17 R5=RR
CLEF=RR
YCLEF=0
GO TO 1800
4800 IF(RSN.NE.SN)GO TO 6
RN(J+1)=33
GO TO 1800
4802 YCLEF=0
C CATCHES CLEF AFTER FIRST RESTS.
GO TO 6
3801 IF(R.NE.17)GO TO 3800
IF(IPG)GO TO 2211
XSIG=RSIG(ISN)
GO TO 3802
2211 IF(YSIG)GO TO 3802
IF(RSN.NE.SN)GO TO 6
3802 RR=RN(J+5)
IF(RR.EQ.XSIG)GO TO 6
YSIG=0
XSIG=RR
C SKIPS DUPL. KEY SIGS.
IF(IPG.EQ.0)RSIG(ISN)=RR
GO TO 1800
3800 IF(R.EQ.8)GO TO 6
C OMIT ALL STAVES FOR NOW
IF(R.NE.18.)GO TO 81
IF(IPG)GO TO 2311
XMTR=RMETER(ISN)
GO TO 1801
2311 IF(YMTR)GO TO 1801
IF(SNMTR.EQ.200.)SNMTR=RSN
C SO IT WON'T REPEAT METERS.
C CHECK ALL METERS IF LINE HAS NOT THIS INST.
IF(RSN.NE.SNMTR)GO TO 6
1801 RA=RN(J+5)*100.+RN(J+6)
C THE TIME SIG.
IF(XMTR.EQ.RA)GO TO 6
XMTR=RA
YMTR=0
IF(IPG.EQ.0)RMETER(ISN)=RA
GO TO 1800
81 IF(RSN.NE.SN)GO TO 6
1800 IF(RN(J+3).LT.XLFT)GO TO 6
C OMIT SOME THINGS TO LEFT OF STAFF BEGINNING.
IF(R.NE.5)GO TO 810
C NEXT CHECKS FOR SLUR OVER END OF LINE
IF(RN(J+6).GE.199.)RN(J+6)=200.
C ****** 200.0 ABOVE IS SUBJECT TO CHANGE!
810 KL=0
IF(R.GT.2)GO TO 1810
C NEXTS FINDS NOTES AND RESTS WITHOUT RHYTHM (P7 OR P9)
IF(RN(J+3)-PQ.GT.SPCPG)GO TO 1810
C JUMP IF NOT IN SAME VERT. POS.
IF(RT.NE.R)GO TO 1810
C JUMP IF PREVIOUS ITEM WASN'T THE SAME
RS=9-R*2
IF(RN(J).GE.RS)GO TO 1810
C JUMP IF WDCNT IS BIG ENOUGH
KL=RS-RN(J)
C SEND THE DIFFERENCE TO THE SUBROUTINE AND ADD A RHYTHM (1.0)
1810 CALL PNRN(J,IWDS,K)
C PUTS NEEDED THINGS INTO PN ARRAY
RT=R
PQ=RN(J+3)
C SAVE THINGS FOR NEXT TIME AROUND LOOP.
6 CONTINUE
C******↓↓↓↓↓↓ RHYTH RESET ↓↓↓↓↓↓↓↓
CALL SORT(IWDS)
C SORTS PN ARRAY, PUTS IT BACK INTO RN
23 LL=0
C TO 'MOVE' INSTEAD OF 'JUSTIFY'
IF(ENDLN.EQ.0)GO TO 2334
R4=0
R5=1000
R7=0
RS=0
R8=ENDLN
R9=0
GO TO 33
2334 R4=0
R5=10000
R8=1.-RN(4)
R9=0
C INSERT?? →→ IF(R8.GT.0)R9=200.
R7=0
RS=0
33 CALL PTMOVE(RN,KWDS)
CALL SHFT0(KQ)
ENDLN=ENDLN+200-XLFT
TYPE 3001,KQ
GO TO 10
27 FORMAT(' RESPACING')
20 TYPE 27
CALL SHFT1(KQ)
KK=L
TYPE 3001,L
C DELETES EXTRA BAR LINES, ETC.
IF(IPG)CALL RESTS
C FROM NOW ON ALL CODES #-1 ARE IGNORED, RESTS HAVE BEEN COMBINED.
CALL SHIFT
C L=NUMBER OF ITEMS FOR RHY RECONS.
N=0
S=-100
R=0
KCLEF=0
DO 601 K=1,L
J=KPN(K)
CC N=N+1
CC NN(N)=0
CC MM(N)=J+3
CALL MMNN(3)
R=Q(J+1)
801 IF(R.LT.4)GO TO 702
IF(R.EQ.17)GO TO 702
IF(R.EQ.18)GO TO 702
IF(R.GT.7)GO TO 601
IF(R.NE.7)GO TO 605
IF(Q(J).LT.5)GO TO 604
C JUMP FOR STANDARD TRILL
RS=RN(J+7)
IF(RS.EQ.1)GO TO 604
IF(ABS(RS).GE.3)GO TO 604
C JUMP FOR 8VA, 15MA, ELSE THIS IS A PEDAL MARK WITHOUT LINE.
GO TO 601
605 IF(R.NE.4)GO TO 604
IF(Q(J).EQ.2)GO TO 702
C JUMP IF IT IS A BAR LINE
IF(Q(J).LT.4)GO TO 601
IF(Q(J+6).NE.0)GO TO 604
C GO GET OTHER POS OF LINE
GO TO 601
702 NN(N)=R
GO TO 601
C NEXT FOR MULTIPOSITION ITEMS: LINES, SLURS, BEAMS, TRILL, 8VA
604 CALL MMNN(6)
C NEXT POS2, 3 AND 4 OF CERTAIN ITEMS
IF(R.NE.6)GO TO 601
C NEXT FOR BEAMS
RZ=Q(J)
IF(RZ.LT.8)GO TO 608
IF(Q(J+10).EQ.0)GO TO 608
IF(Q(J+7).GT.0)CALL MMNN(8)
C NEXT SHIFTS P8 OF COMPOSITE BEAMS
608 IF(RZ.LT.7)GO TO 601
IF(Q(J+7))GO TO 688
C P7 IS NEG FOR TREMOLO
IF(Q(J+8).EQ.0)GO TO 601
C P8 NEG OR POS = POS3 IN P9; P8=0= P9 IS NUM.
688 IF(Q(J+9).GT.0)CALL MMNN(9)
C FOUND A POS. IN P9
601 CONTINUE
C NEXT SORTS THE POINTS
6000 J=1
610 IF(Q(MM(J)).LE.Q(MM(J+1)))GO TO 710
CALL EXCHG(MM(J),NN(J))
C ABOVE EXCHGS --(J) AND --(J+1)
IF(J.EQ.1)GO TO 710
J=J-1
GO TO 610
710 J=J+1
IF(J.LT.N)GO TO 610
C NOW ALL SORTED
KLEF=0
K=0
2703 K=K+1
M=NN(K)
IF(M.EQ.0)GO TO 703
S=Q(MM(K))
C POS OF THIS ITEM
KW=K
IF(M.LT.3)GO TO 1703
RZ=.8
IF(M.NE.3)GO TO 4703
IF(KLEF)GO TO 5703
C LOOK AT CLEFS ONLY ONCE.
KLEF=-1
4703 KW=KW+1
IF(KW.GT.N)GO TO 703
IF(NN(KW).EQ.0)GO TO 4703
RT=Q(MM(KW))-S
C SPACE BETWEEN THIS AND NEXT ITEM
IF(RT.GT.RZ)GO TO 703
NN(KW-1)=0
GO TO 4703
5703 NN(K)=0
GO TO 703
1703 KW=KW+1
IF(KW.GT.N)GO TO 703
RT=Q(MM(KW))-S
C SPACE BETWEEN THIS AND NEXT ITEM
IF(RT.LT.SPCNT)GO TO 1703
7703 IF(KW-K.EQ.1)GO TO 703
KW=KW-1
IF(NN(KW).EQ.0)GO TO 7703
8703 DO 6703 J=K,KW-1
M=NN(J)
IF(M.GT.2)M=0
6703 NN(J)=-M
C FOR ITEMS BETWEEN 2 POINTS, CHANGES 1,2 TO -1,-2; OTHERS TO 0.
K=KW
703 IF(K.LT.N)GO TO 2703
J=0
1710 J=J+1
IF(NN(J).LE.0)GO TO 1710
C FIND 1ST IMPORTANT ITEM. PUT POS IN S2 AND P1
S2=Q(MM(J))
P1=S2
612 IF(NN(J).EQ.0)GO TO 613
7102 M=J+1
S1=S2
LS=0
616 IF(NN(M).GT.0)GO TO 614
IF(M.EQ.N)GO TO 614
1616 M=M+1
C M WILL POINT TO NEXT IMPORTANT ITEM.
GO TO 616
C ASSUMES PROPER END OF LIST
614 K=MM(J)
RZ=Q(K)
7104 R=Q(K-2)
C THE CODE #
IF(R.GT.2)GO TO 618
RT=9-R*2
P=Q(K+IFIX(RT)-1)
IF(Q(K-3).LT.RT)P=100.0
C WAS THERE A RHYTH VALUE?
LS=J
IF(P.LT.1)GO TO 606
IF(NN(M).EQ.4)GO TO 606
C CUT DOWN SPACE AFTER QUARTER OR GREATER IF NEXT IS 3,17,18
IF(NN(M).GT.2)P=P/2
606 LS=LS-1
IF(LS.LE.1)GO TO 607
C NEXT CHECKS ON ALL NEARBY RHYTHMS
LA=MM(LS)
CC IF(ABS(Q(LA)-RZ).GT.SPCNT)GO TO 607
IF(RZ-Q(LA).GT.SPCNT)GO TO 607
IF(NN(LS).GE.0)GO TO 606
C GO BACK IF NOT NOTE OR REST (1,2 -1,-2)
RT=Q(LA-2)
CC IF(RT.GT.3)GO TO 606
C LOOK AT NOTES AND RESTS ONLY
IF(Q(LA-3).LT.9-RT*2)GO TO 606
C JUMP IF NO RHYTHM ON THIS NOTE
LC=LA+8-RT*2
C LC IS PARAM FOR RHYTH IN REST OR NOTE
CC IF(Q(LC).GE.P)GO TO 606
CC P=Q(LC)
C GETS SMALLEST RHYTHM
RT=Q(LC)
IF(RT.LT.P)P=RT
GO TO 606
607 IF(P.EQ.100)P=1
IF(R.NE.2)GO TO 615
IF(P.LT..2)P=.2
C 32ND, 64TH RESTS GET BIGGER!
615 IF(P.LT..125)P=.125
C NOW MOVE EVERYTHING FROM J+1 ON.
GO TO 609
CC629 IF(Q(K+5).EQ.1000)GO TO 630
CC IF(Q(K-3).GE.8.AND.Q(K+7).EQ.1)GO TO 630
C GRACE NOTES R8=1000 OR R10=1
CC IF(P.GE..25)GO TO 617
618 IF(R.EQ.3)P=5
IF(R.EQ.4)P=2.6
IF(R.GE.17)P=3.
IF(R.NE.9)GO TO 628
C FOR BAR REPEAT SIGN. =HALF NOTE SPACE
P=2.
CC630 P=.05
C FOR GRACE NOTES
CC617 IF(P.EQ.0)P=1
CC IF(P.LT..125)P=.125
609 IF(P.GT.8)P=8
P=(P+(.125-P)*FIB)*RSPC
IF(P.GT.18)P=P-P/7
C MAKE THIS BETTER!!!!
628 K=MM(M)
S2=Q(K)
P2=P1+P
Q(K)=P2
IF(M-J.EQ.1)GO TO 7103
C NEXT ADJUSTS STUFF IN BETWEEN
R=P/(S2-S1)
DO 620 K=J+1,M-1
LA=MM(K)
620 Q(LA)=P1+R*(Q(LA)-S1)
7103 P1=P2
J=M
IF(J.LT.N)GO TO 7102
613 J=J+1
IF(J.LT.N)GO TO 612
C ALL DONE!
C*** IF(XLFT.EQ.0)GO TO 600
C NEXT MOVES LEFT SIDE OF STAFF TO ZERO
CALL PUTFIL('PARTS')
2929 JJ2=L+2
JPQ=KPN(L+1)+1
CALL FASTOU(RSTFAC,128)
CALL FASTOU(PN,JJ2)
CALL FASTOU(Q,JPQ)
CALL FINFIL
TL=0
K=0
DO 12 J=1,L
LA=KPN(J)
IF(Q(LA+1).NE.4)GO TO 12
K=K+1
C BAR LINE COUNTER
T=Q(LA+3)
C TOTAL SPACE
BARS(K)=T-TL
C SIZE OF THIS MEASURE
TL=T
12 CONTINUE
CALL PUTFIL('BARS')
CALL FASTOU(KBAR,512)
CALL FINFIL
C K (NUM OF BARS - UP TO 511) IS FIRST LOC OF KBAR.
CALL PT2(PN,Q,KWDS,RN)
2 FORMAT(A5,30I)
3001 FORMAT(2I6)
5 FORMAT(5F)
END